<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>负边距使用技巧</title>
  <style>
    *{margin:0;padding:0;}

    /* === case1 ===*/
    .wrap {
      width: 230px;
      margin: auto;
      padding: 30px;
      border: 1px dashed red;
    }

    .wrap>div {
      float: left;
      width: 100px;
      height: 100px;
      margin: 1px;

      /* 效果: 左为负时，是左移，右为负时，是左拉(相当于右边的宽度塌陷了)。上下与左右类似 */
      /*margin-left: -50px;*/ /*两个都一起向左移动50px, 并且第二个还相对于第一个向左移动了50px*/
       /*margin-right: -50px;*/ /*第一个不会动,第二个往左移动了50px*/
       margin-top: -50px;
      /* margin-bottom: -50px; */
    }



    /* === case2 ===*/
    /*
     中间有间距  两边没有间距
    */

    /* 注意:
       1. 之所以不使用first-child:{border:none;}来达到效果,是因为我们下面使用了box-sizing:border-box;,这样none掉的话第一个元素占据的可视面积就会变得比其它的元素大
       2. 另外也不能将box的宽度设置为width:100%, 这样右边会空出来3px*/
    .box{margin-left:-3px;}

    .inner{
      /* box-sizing:border-box => padding + border*/
      box-sizing:border-box;
      float: left;
      width: 25%;
      height:100px;
      border-left:3px solid #fff;
    }

    .inner:nth-child(2n+1){background-color: rebeccapurple;}
    .inner:nth-child(2n){background-color: green;}
  </style>
</head>

<body>
<!--<h1>case 1</h1>
 <div class="wrap">
    <div style="background: pink"></div>
    <div style="background-color: green;"></div>
</div>-->

<hr>

<h1>case 2</h1>
<div class="box">
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
  <div class="inner"></div>
</div>
</body>

</html>
